/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package de.tor.tribes.types;

import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

/**
 *
 * @author Torridity
 */
@Entity
@Table(name = "ParserPatterns")
public class ParserPattern implements Serializable {

    public enum PARSER_PATTERN_ID {

        WINNER("Der (Angreifer|Verteidiger) hat gewonnen"),
        SEND("Gesendet"),
        SEND_DATE_FORMAT("dd.MM.yy hh:mm:ss"),
        LUCK("Glück\\s+\\(aus\\s+Sicht\\s+des\\s+(Angreifers|Verteidigers)\\)"),
        MORAL("Moral"),
        ATTACKER("Angreifer"),
        SOURCE("Herkunft"),
        DEFENDER("Verteidiger"),
        TARGET("Ziel"),
        WALL_DAMAGE("Schaden durch (Rammen|Rammböcke):\\s+Wall beschädigt von Level ([0-9]+) auf Level ([0-9]+)"),
        CATA_DAMAGE("Schaden durch Katapultbeschuss:\\s+([A-Za-zäöü]+) beschädigt von Level ([0-9]+) auf Level ([0-9]+)"),
        SPIED_RESOURCES("Erspähte Rohstoffe"),
        HAUL("Beute"),
        ACCEPTANCE("Zustimmung: Gesunken von ([0-9]+) auf ([\\-0-9]+)"),
        LEVEL("Stufe"),
        FIRST_CURCH("Erste Kirche"),
        CHURCH("Kirche"),
        AMOUNT("Anzahl"),
        LOSSES("Verluste"),
        ON_THE_WAY("Truppen des Verteidigers, die unterwegs waren\\s+"),
        OUTSIDE("Truppen des Verteidigers in anderen Dörfern\\s+"),
        TOTAL_LOSS("Keiner deiner Kämpfer ist lebend zurückgekehrt"),
        SUPPORTED_UNITS("spear,sword,axe,archer,spy,light,marcher,heavy,ram,catapult,knight,snob"),
        BUILDING_MAPPINGS("main=Hauptgebäude,barracks=Kaserne,stable=Stall,garage=Werkstatt,church=Kirche,church_f=Erste Kirche,snob=Adelshof,smith=Schmiede,"
        + "place=Versammlungsplatz,market=Marktplatz,wood=Holzfäller,stone=Lehmgrube,iron=Eisenmine,farm=Bauernhof,storage=Speicher,hide=Versteck,wall=Wall,statue=Statue");
        private String defaultValue;

        private PARSER_PATTERN_ID(String pDefault) {
            defaultValue = pDefault;
        }

        public String getDefault() {
            return defaultValue;
        }
    }
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    @Enumerated(EnumType.STRING)
    private PARSER_PATTERN_ID patternName;

    /**
     * @return the id
     */
    public Long getId() {
        return id;
    }

    /**
     * @param id the id to set
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * @return the patternName
     */
    public PARSER_PATTERN_ID getPatternName() {
        return patternName;
    }

    /**
     * @param patternName the patternName to set
     */
    public void setPatternName(PARSER_PATTERN_ID patternName) {
        this.patternName = patternName;
    }
}
